package cn.qicaiwang.open.admin.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

@Data
@TableName("fa_user")
public class UserEntity {

    @TableId
    // 用户唯一标识符
    private Integer id;

    // 用户所属的组ID，用于区分不同用户组（如：管理员组、普通用户组等）
    private Integer groupId;

    // 用户邀请码，用于邀请新用户时验证
    private String code;

    // 标记用户是否已填写邀请码（0：未填写，1：已填写）
    private Byte isCode;

    // 用户查询次数，可能用于记录用户查询特定资源的次数
    private Short number;

    // 用户登录名，用于登录系统时的身份验证
    private String username;

    // 用户在系统中的昵称，用于显示和个性化设置
    private String nickname;

    // 用户密码，经过加密存储，用于登录时的身份验证
    private String password;

    // 密码盐，用于密码加密过程中的随机值，增加密码的安全性
    private String salt;

    // 用户的电子邮箱地址，用于找回密码、通知等
    private String email;

    // 用户的手机号码，用于短信验证码登录、找回密码等
    private String mobile;

    // 用户头像的URL地址或存储路径，用于显示用户头像
    private String avatar;

    // 用户等级，用于区分不同等级的用户，可能关联不同的权限和特权
    private Byte level;

    // 用户性别（0：未知，1：男性，2：女性）
    private Byte gender;

    // 用户的出生日期，用于记录用户年龄或进行生日提醒等
    private Date birthday;

    // 用户的个人简介或格言，用于展示用户的个性和态度
    private String bio;

    // 用户在系统中的余额，用于记录用户的资金情况
    private BigDecimal money;

    // 用户积分，用于记录用户的活跃度和贡献度，可能用于兑换奖品或提升等级
    private Integer score;

    // 用户连续登录的天数，用于记录用户的登录活跃度
    private Integer successions;

    // 用户历史最大连续登录天数，用于记录用户的最高登录活跃度
    private Integer maxsuccessions;

    // 用户上次访问系统的时间戳，用于记录用户的最后活跃时间
    private Long prevtime;

    // 用户最后登录系统的时间戳，用于记录用户的登录时间
    private Long logintime;

    // 用户最后登录系统的IP地址，用于记录用户的登录地点和进行安全监控
    private String loginip;

    // 用户登录失败的次数，用于记录用户登录失败的尝试次数
    private Byte loginfailure;

    // 用户上次登录失败的时间戳，用于记录用户最后登录失败的时间
    private Long loginfailuretime;

    // 用户注册时的IP地址，用于记录用户注册时的地点和进行安全监控
    private String joinip;

    // 用户注册的时间戳，用于记录用户的注册时间
    private Long jointime;

    // 用户记录创建的时间戳，通常为用户注册时的时间
    private Long createtime;

    // 用户记录最后更新的时间戳，用于记录用户信息的最后修改时间
    private Long updatetime;

    // 用户的令牌，如JWT令牌，用于用户身份验证和会话管理
    private String token;

    // 用户的状态（如：启用、禁用等），用于控制用户的访问权限
    private String status;

    // 用户的验证信息，如邮箱验证码、手机验证码等，用于用户身份验证和重置密码等操作
    private String verification;
}